﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Diplo.Twitter
{
	/// <summary>
	/// Represents an interface definining OAuth data that can be loaded and persisted to a backing store.
	/// </summary>
	/// <remarks>
	/// OAuth data contains the stored values that are required to authenticate an application with Twitter
	/// See http://oauth.net/documentation/getting-started/
	/// </remarks>
	public interface IOAuthData
	{
		/// <summary>
		/// Gets the unique identifier for loading an instance of data
		/// </summary>
        string AccountName { get; set; }
		/// <summary>
		/// Gets or sets the token value
		/// </summary>
		string Token { get; set; }
		/// <summary>
		/// Gets or sets the token secret value
		/// </summary>
		string TokenSecret { get; set; }
		/// <summary>
		/// Gets or sets the Twitter user id for the user who has authorised this
		/// </summary>
		string UserID { get; set; }
		/// <summary>
		/// Gets or sets the screen name (username) of the Twitter user who has authorised this
		/// </summary>
		/// <value>The name of the screen.</value>
		string ScreenName { get; set; }

		

		/// <summary>
		/// Saves the passed OAuth data back to the persistent backing store
		/// </summary>
		/// <param name="data">The OAuth data to save</param>
		/// <remarks>
		/// This method should save this instance to a persistent backing store, such as a database or XML file etc.
		/// </remarks>
		void Save();

	}

	
}
